//TODO 基础类型
(()=>{
// 布尔类型
    //let 变量名:数据类型 = 值
    let flag:boolean=true
    flag=false
    /*flag=10*/  //throw error
    console.log(flag)

//数字类型
    let a1: number = 10 // 十进制
    let a2: number = 0b1010  // 二进制
    let a3: number = 0o12 // 八进制
    let a4: number = 0xa // 十六进制
    /*a1='haha'*/  //throw error
    console.log(a1,a2,a3,a4)

//字符串类型
let str1:string='窗前明月光'
    let str2:string='疑是地上霜'
    let str3:string='举头望明月'
    let str4:string='低头思故乡'
    /*str4=10*/  //throw error
    console.log(`${str1},${str2},${str3},${str4}`)

    //字符串和数字之间能否一起拼接
    let str5:string='我有这么多的钱'
    let num:number=1000
    console.log(str5+num)
    //总结
//ts中变量一开始是什么类型,后期赋值的时候,只能有这种类型的数据,不能用其他数据类型的值进行赋值
    console.log('===================================')


//TODO null和undefined
    let und:undefined=undefined
    let nul:null=null
    console.log(`${und},${nul}`)
    //undefined和null 都可以作为其类型的子类型,吧undefined和null赋值给其他类型的变量的,如number类型的变量
    let num2:undefined = undefined
    let num3:null = null
    console.log(num2)
    console.log(num3)
})()

